跳到主要内容
版本:1.9.0

C++ API

STCML API

本章节详细的描述了STCML(Stream Computing Management Library)接口,用户可使用这些接口进行设备管理查询等操作。STCML接口相关的库为libstcml.so。用户可调用接口完成二次开发。

调用要求

  • 已安装HPE。

  • 在代码文件中导入所需的头文件,包括但不限于:

    #include <stcml.h>

接口说明

stcmlInit

函数描述:调用stcmlInit初始化STCML。

函数定义:

stcmlReturn_t stcmlInit()

函数参数:

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlShutdown

函数描述:调用stcmlShutdown关闭STCML,释放stcmlInit中初始化的资源。

函数定义:

stcmlReturn_t stcmlShutdown()

函数参数:

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceGetCount

函数描述:调用stcmlDeviceGetCount获取当前设备数量。

函数定义:

stcmlReturn_t stcmlDeviceGetCount(unsigned int *deviceCount)

函数参数:

名称输入/输出类型描述
deviceCount输出参数unsigned int *当前设备数量。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceGetHandleByIndex

函数描述:调用stcmlDeviceGetHandleByIndex获取当前指定设备编号对应的设备句柄。

函数定义:

stcmlReturn_t stcmlDeviceGetHandleByIndex(unsigned int index, stcDevice_t **device)

函数参数:

名称输入/输出类型描述
index输入参数unsigned int指定设备编号。
device输出参数stcDevice_t **返回指定设备句柄。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceGetHandleByPciBusId

函数描述:调用stcmlDeviceGetHandleByPciBusId获取当前PCIe总线id对应的设备句柄。

函数定义:

stcmlReturn_t stcmlDevcieGetHandleByPciBusId(const char *pciBusId, stcDevice_t **device)

函数参数:

名称输入/输出类型描述
pciBusId输入参数const char *指定PCIe总线id。
device输出参数stcDevice_t返回指定设备句柄。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceGetIndex

函数描述:调用stcmlDeviceGetIndex获取当前设备句柄对应的设备id。

函数定义:

stcmlReturn_t stcmlDeviceGetIndex(stcDevice_t *device, unsigned int *index)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
index输出参数unsigned int *返回对应设备编号。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceGetName

函数描述:调用stcmlDeviceGetName获取当前设备的名称。

函数定义:

stcmlReturn_t stcmlDeviceGetName(stcDevice_t *device, char *name, unsigned int length)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
name输出参数char *设备名称。
length输入参数unsigned int允许返回的最大长度(至少32字节)。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceGetUuid

函数描述:调用stcmlDeviceGetUuid获取当前设备的设备id。

函数定义:

stcmlReturn_t stcmlDeviceGetUuid(stcDevice_t *device, char *uuid, unsigned int length)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
uuid输出参数char *设备名称。
length输入参数unsigned int允许返回的最大长度(至少32字节)。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceGetSerial

函数描述:调用stcmlDeviceGetSerial获取当前设备的序列号。

函数定义:

stcmlReturn_t stcmlDeviceGetSerial(stcDevice_t *device, char *serial, unsigned int length)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
serial输出参数char *设备序列号。
length输入参数unsigned int允许返回的最大长度(至少32字节)。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceGetPower

函数描述:调用stcmlDeviceGetPower获取当前设备的功率。

函数定义:

stcmlReturn_t stcmlDeviceGetPower(stcDevice_t *device, float *power)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
power输出参数float *设备功率。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceGetFrequency

函数描述:调用stcmlDeviceGetFrequency获取当前设备的频率信息。

函数定义:

stcmlReturn_t stcmlDeviceGetFrequency(stcDevice_t *device, stcmlFrequencyInfo_t *frequency)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
frequency输出参数stcmlFrequencyInfo_t *设备频率信息。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceSetFrequency

函数描述:调用stcmlDeviceSetFrequency设置当前设备的频率信息。

函数定义:

stcmlReturn_t stcmlDeviceSetFrequency(stcDevice_t *device, unsigned int index, unsigned int frequency)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
index输入参数unsigned intsoc区域索引。
frequency输入参数unsigned int设置频率值,默认值为1000,其他支持的值为624、800、900、 1100、1200、1300、1400。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceGetVoltage

函数描述:调用stcmlDeviceGetVoltage获取当前设备的电压。

函数定义:

stcmlReturn_t stcmlDeviceGetVoltage(stcDevice_t *device, stcmlVoltageInfo_t *voltage)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
voltage输出参数stcmlVoltageInfo_t *设备电压信息。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceSetVoltage

函数描述:调用stcmlDeviceSetVoltage设置当前设备的电压。

函数定义:

stcmlReturn_t stcmlDeviceSetVoltage(stcDevice_t *device, stcmlVoltageInfo_t voltage)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
voltage输入参数stcmlVoltageInfo_t *指定设备的电压信息。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceSetVmacVoltageAlarm

函数描述:调用stcmlDeviceSetVmacVoltageAlarm设置当前设备的电压报警值。

函数定义:

stcmlReturn_t stcmlDeviceSetVmacVoltageAlarm(stcDevice_t *device, float base, float offset)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
base输入参数float电压报警值的下限。
offset输入参数float电压报警值的间隔值。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceGetTemperatureInfo

函数描述:调用stcmlDeviceGetTemperatureInfo获取当前设备的温度信息。

函数定义:

stcmlReturn_t stcmlDeviceGetTemperatureInfo(stcDevice_t *device, stcmlTemperatureInfo_t *temperatureInfo)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
temperatureInfo输出参数stcmlTemperatureInfo_t *设备温度信息。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceSetAlertTemperature

函数描述:调用stcmlDeviceSetAlertTemperature设置当前设备的告警温度。

函数定义:

stcmlReturn_t stcmlDeviceSetAlertTemperature(stcDevice_t *device, float temperature)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
temperature输入参数float设备告警温度 。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceSetShutdownTemperature

函数描述:调用stcmlDeviceSetShutdownTemperature设置当前设备的关机温度。

函数定义:

stcmlReturn_t stcmlDeviceSetShutdownTemperature(stcDevice_t *device, float temperature)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
temperature输入参数float设备关机温度 。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceEnableMonitor

函数描述:调用stcmlDeviceEnableMonitor打开设备监控,与设置监控值配合使用,例如报警电压、告警温度、关机温度等。

函数定义:

stcmlReturn_t stcmlDeviceEnableMonitor(stcDevice_t *device)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceGetBoardStatus

函数描述:调用stcmlDeviceGetBoardStatus获取当前设备状态。

函数定义:

stcmlReturn_t stcmlDeviceGetBoardStatus(stcDevice_t *device, unsigned int *status)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
status输出参数unsigned int *设备状态值,0代表打开,1代表关闭。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceStartBoard

函数描述:调用stcmlDeviceStartBoard打开因超过温度阈值被关闭的设备。

函数定义:

stcmlReturn_t stcmlDeviceStartBoard(stcDevice_t *device)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlSystemGetSTCMLVersion

函数描述:调用stcmlSystemGetSTCMLVersion获取当前STCML的版本。

函数定义:

stcmlReturn_t stcmlSystemGetSTCMLVersion(char *version, unsigned int length)

函数参数:

名称输入/输出类型描述
version输出参数char *STCML版本。
length输入参数unsigned int返回字符串最大长度,至少32字节。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlSystemGetHPEVersion

函数描述:调用stcmlSystemGetHPEVersion获取当前系统的HPE版本。

函数定义:

stcmlReturn_t stcmlSystemGetHPEVersion(char *version, unsigned int length)

函数参数:

名称输入/输出类型描述
version输出参数char *HPE版本。
length输入参数unsigned int返回字符串最大长度,至少32字节。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlSystemGetDriverVersion

函数描述:调用stcmlSystemGetDriverVersion获取当前系统的驱动版本。

函数定义:

stcmlReturn_t stcmlSystemGetDriverVersion(char *version, unsigned int length)

函数参数:

名称输入/输出类型描述
version输出参数char *驱动版本。
length输入参数unsigned int返回字符串最大长度,至少32字节。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceGetMcuFirmwareVersion

函数描述:调用stcmlDeviceGetMcuFirmwareVersion获取当前设备的MCU固件版本。

函数定义:

stcmlReturn_t stcmlDeviceGetMcuFirmwareVersion(stcDevice_t *device, char *version, unsigned int length)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
length输入参数char *返回字符串最大长度,至少32字节。
version输出参数unsigned intMCU固件版本。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlDeviceGetNpuCtrlFirmwareVersion

函数描述:调用stcmlDeviceGetNpuCtrlFirmwareVersion获取当前设备的NPU Ctrl固件版本。

函数定义:

stcmlReturn_t stcmlDeviceGetNpuCtrlFirmwareVersion(stcDevice_t *device, char *version, unsigned int length)

函数参数:

名称输入/输出类型描述
device输入参数stcDevice_t *指定设备句柄。
version输出参数unsigned intNPU Ctrl固件版本。
length输入参数char *返回字符串最大长度,至少32字节。

函数返回值:

类型说明
stcmlReturn_t- 返回值为0:成功。
- 返回值为其他值:失败,详细的说明请参见错误码章节。

stcmlErrorString

函数描述:调用stcmlErrorString从获取的错误码得到错误详情。

函数定义:

const char* stcmlErrorString(stcmlReturn_t result)

函数参数:

名称输入/输出类型描述
result输入参数stcmlReturn_t错误码。

函数返回值:

类型说明
const char*错误码对应错误字符串。

数据类型

stcmlFrequencyInfo_t

数据描述:设备频率信息。包含的成员变量如下所示:

成员变量类型说明
socWestFrequnsigned intsoc西侧频率。
socEastFrequnsigned intsoc东侧频率。
ddrFrequnsigned intddr频率。

stcmlVoltageInfo_t

数据描述:设备电压信息。包含的成员变量如下所示:

成员变量类型说明
indexunsigned int设置电压选项,仅用于设置mac电压和soc电压:
vmacunsigned intmac电压,有效值550~800 mV。
vsocunsigned intsoc电压,有效值800~950 mV。

stcmlTemperatureInfo_t

数据描述:设备温度信息。包含的成员变量如下所示:

成员变量类型说明
coreValuefloatNPU设备核心温度,合理范围为25℃~90℃。
alertValuefloatNPU设备告警温度。
shutdownValuefloatNPU设备关机温度。
frontValuefloatPCIE单板前侧温度。
backValuefloatPCIE单板后侧温度。

错误码

stcmlReturn_t记录调用STCML时接口返回的错误码。支持返回的错误类型如下所示:

错误码说明
STCML_SUCCESS0函数调用成功,未返回错误。
STCML_ERROR_IO-1输入/输出错误。
STCML_ERROR_INVALID_PARAM-2无效参数错误。
STCML_ERROR_ACCESS-3权限错误。
STCML_ERROR_NO_DEVICE-4未发现该设备(可能已断开连接)。
STCML_ERROR_NOT_FOUND-5未找到实体。
STCML_ERROR_BUSY-6资源繁忙。
STCML_ERROR_TIMEOUT-7响应超时。
STCML_ERROR_OVERFLOW-8长度溢出。
STCML_ERROR_PIPE-9管道错误。
STCML_ERROR_INTERRUPTED-10系统调用中断(可能由信号引发)。
STCML_ERROR_NO_MEM-11内存不足。
STCML_ERROR_NOT_SUPPORTED-12此平台不支持或未实现该操作。
STCML_ERROR_INVALID_FILE-13升级文件损坏或无效。
STCML_ERROR_OTHER-99其他错误。